package com.yn.service.zy;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yn.common.model.zy.TDoctorInfoDO;
import com.yn.common.page.BasePage;
import com.yn.common.request.sc.PageParamRequest;
import com.yn.common.request.zy.DoctorAddRequest;
import com.yn.service.zy.model.dto.TDoctorInfoOutDTO;
import com.yn.service.zy.model.query.TDoctorInfoQuery;

import java.util.List;

public interface TDoctorInfoService extends IService<TDoctorInfoDO> {
    /**
     * 分页获取专家列表
     * @param query
     * @param basePage
     * @return
     */
    IPage<TDoctorInfoOutDTO> listPageByQuery(TDoctorInfoQuery query, BasePage basePage);

    /**
     * 获取专家详情
     * @param doctorId
     * @return
     */
    TDoctorInfoOutDTO getInfo(Integer doctorId);

    /**
     * 专家列表信息
     * @param query 查询条件
     * @param pageRequest 分页参数
     * @return
     */
    BasePage<TDoctorInfoOutDTO> listPageByQuery1(TDoctorInfoQuery query, PageParamRequest pageRequest);

    /**
     * 新增专家
     * @param request 新增专家请求对象
     * @return
     */
    void saveDoctorInfo(DoctorAddRequest request);

    /**
     * 修改专家信息
     * @param request 修改专家信息请求对象
     * @return
     */
    void modifyDoctorInfo(DoctorAddRequest request);

    /**
     * 删除专家
     * @param doctorId 专家id
     * @return
     */
    void deleteDoctorInfo(Integer doctorId);
}

